package com.jmp.push;

import java.util.List;

public interface PushClient {

    /**
     * @return 默认AppId
     */
    String getAppId();

    /**
     * @return client对应的AppIds
     */
    List<String> getAppIds();

    /**
     * @return client对应的AppId
     */
    String getAppId(String clientKey);

    /**
     * 对单个用户推送消息
     */
    void toOne(PushClientRequest request);

    /**
     * 批量单推
     * <p>
     * 当单推任务较多时，推荐使用该接口，可以减少与服务端的交互次数。
     */
    void toOneBatch(List<PushClientRequest> requests);

    /**
     * 批量推
     */
    void toList(PushListRequest pushListRequest);

    /**
     * 群推
     */
    void toAll(PushClientRequest request);
}
